package net.tv90.business.model.dto;

import jakarta.validation.constraints.Max;
import jakarta.validation.constraints.NotNull;
import lombok.Data;

@Data
public class SubjectQueryDTO {

    /**
     * id精确查询
     */
    Long subjectId;

    /**
     * 名称模糊查询
     */
    String subjectName;

    /**
     * 教师名称精确查询
     */
    String teacherName;

    /**
     * 根据学院查询
     */
    String academy;

    /**
     * 非null 只查询与某个学生相关的选题
     */
    Long studentId;

    /**
     * 当前页码
     */
    @NotNull(message = "字段不能为空")
    Integer page;

    /**
     * 每页大小
     */
    @Max(20)
    @NotNull(message = "字段不能为空")
    Integer pageSize;

    /**
     * 0升序 1降序
     */
    @NotNull(message = "字段不能为空")
    Integer desc;

    /**
     * 0 只查询未被选择的课题  1 查询所有
     */
    @NotNull(message = "字段不能为空")
    Integer showAll;

    /**
     * 排序字段
     * 允许：id difficulty
     */
    @NotNull(message = "字段不能为空")
    String orderBy;
}
